ไดนามิกไทม์วอร์ปปิง (อังกฤษ: Dynamic time warping : DTW) เป็นขั้นตอนวิธีสำหรับการเปรียบเทียบความคล้ายของลำดับที่มีความแตกต่างกันในด้านเวลาหรือความเร็ว เช่น รูปแบบการเดินของคนๆหนึ่งจะถูกนับว่ามีความคล้าย ไม่ว่าคนๆนั้นจะเดินอย่างรวดเร็ว เดินอย่างเชื่องช้า หรือแม้แต่เดินด้วยความเร่ง เมื่อพิจารณาจากผู้สังเกตเดียวกัน ซึ่งไดนามิกไทม์วอร์ปปิงสามารถนำไปประยุกต์ได้กับวิดีโอ เสียง และภาพ รวมไปถึงข้อมูลต่างๆที่สามารถแปลงให้อยู่ในรูปของข้อมูลเชิงเส้นได้ ตัวอย่างหนึ่งของการประยุกต์ขั้นตอนวิธีนี้ไปใช้คือ การรู้จำคำพูด โดยใช้ไดนามิกไทม์วอร์ปปิง เพื่อจัดการกับคำพูดที่มีความเร็วไม่เท่ากัน แม้จะสื่อความหมายเดียวกัน
โดยทั่วไปไดนามิกไทม์วอร์ปปิงเป็นวิธีที่ทำให้คอมพิวเตอร์สามารถหาการจับคู่ที่เหมาะสมของลำดับสองชุดได้ภายใต้ข้อจำกัด ลำดับเหล่านั้นจะถูกบิดเบือน (warp) แบบไม่คงที่ในหน่วยของเวลา เพื่อพิจารณาความคล้ายจากการกระจายแบบไม่คงที่ในหน่วยของเวลา โดยจะให้ผลลัพธ์ออกมาเป็นระยะทางและวิถีการปรับแนว (alignment) ที่ดี่สุด ซึ่งวิธีการพิจารณาลำดับเช่นนี้พบได้บ่อยครั้งใน แบบจำลองฮิดเดนมาร์คอฟ (hidden Markov models)
โดยลำดับเหล่านี้อาจจะเป็นสัญญาณที่ไม่ต่อเนื่อง (อนุกรมเวลา) หรือ ลำดับของลักษณะเฉพาะ (feature) ที่ถูกสร้างขึ้นตามช่วงเวลา กำหนดให้ปริภูมิของลักษณะเฉพาะแทนด้วย F{\displaystyle F\,} ดังนั้น xn,ym?F{\displaystyle x_{n},y_{m}\in F} สำหรับ n?[1:N]{\displaystyle n\in [1:N]} และ m?[1:M]{\displaystyle m\in [1:M]} เพื่อเปรียบเทียบลักษณะเฉพาะ x,y?F{\displaystyle x,y\in F} จึงจำเป็นที่จะต้องคำนวณต้นทุนเฉพาะส่วน (local cost measure) หรือเรียกอีกอย่างได้ว่า การคำนวณระยะทางเฉพาะส่วน (local distance measure) ซึ่งนิยามได้เป็นฟังก์ชัน c:F?FR?0{\displaystyle c:F\times F\rightarrow R\geqslant 0} ซึ่งโดยทั่วไป c(x,y){\displaystyle c(x,y)\,} จะมีค่าน้อย ถ้า x{\displaystyle x\,} และ y{\displaystyle y\,} มีความคล้ายกันมาก ซึ่งสำหรับแต่ละคู่ของลำดับทั้งสอง นำไปสร้าง เมทริกซ์ต้นทุน (cost matrix) C?RN?M{\displaystyle C\in R^{N\times M}} นิยามด้วย C(n,m):=c(xn,ym){\displaystyle C(n,m):=c(x_{n},y_{m})\,} ดังรูป
โดยเป้าหมายต่อไปคือการหาวิถีการปรับแนวระหว่าง X{\displaystyle X\,} และ Y{\displaystyle Y\,} ที่มีต้นทุนรวมน้อยที่สุด โดยปกติแล้ว วิถีการปรับแนว จะวิ่งไปตามทางที่ต้นทุนต่ำภายในเมทริกซ์ต้นทุน ด้วยรูปแบบดังนี้
เส้นทางบิดเบือน (N,M){\displaystyle (N,M)\,} เป็นลำดับ p=(p1,...,pL){\displaystyle p=(p_{1},...,p_{L})\,} และ pl=(nl,ml)?[1:N]?[1:M]{\displaystyle p_{l}=(n_{l},m_{l})\in [1:N]\times [1:M]} สำหรับ l?[1:L]{\displaystyle l\in [1:L]}จะสนใจเงื่อนไขดังต่อไปนี้
โดยต้นทุนทั้งหมดของเส้นทางบิดเบือน p{\displaystyle p\,} ระหว่าง X{\displaystyle X\,} และ Y{\displaystyle Y\,} ซึ่งเกี่ยวเนื่องกับการวัดต้นทุนเฉพาะส่วน c{\displaystyle c\,} จะถูกนิยามด้วยcp(X,Y):=?l=1Lc(xnl,ynl){\displaystyle c_{p}(X,Y):=\sum _{l=1}^{L}c(x_{n_{l}},y_{n_{l}})}
สำหรับ เส้นทางบิดเบือนที่เหมาะสมระหว่าง X{\displaystyle X\,} และ Y{\displaystyle Y\,} คือระยะทางบิดเบือน p?{\displaystyle p'\,} ซึ่งมีต้นทุกต่ำที่สุดเมื่อเทียบกับเส้นทางบิดเบือนทั้งหมดที่เป็นไปได้ ระยะทางไดนามิกไทม์วอร์ปปิง DTW(X,Y){\displaystyle DTW(X,Y)\,} ระหว่าง X{\displaystyle X\,} และ Y{\displaystyle Y\,} จะถูกนิยามเป็นต้นทุนทั้งหมดของ p?{\displaystyle p'\,} โดย
ขั้นตอนวิธีไดนามิกไทม์วอร์ปปิงแบบทั่วไปจะมีอัตราการเติบโตแบบชี้กำลัง แต่เมื่อใช้กำหนดการพลวัตในการแก้ปัญหาจะมีความซับซ้อนเชิงเวลาเป็น O(MN){\displaystyle O(MN)\,} เมื่อ M{\displaystyle M\,} และ N{\displaystyle N\,} แทนความยาวของข้อมูลในแต่ละลำดับ